Understanding the engine

The Nilkins Engine is composed by components. Each of them will provide different functionalities that can be used together or not.

Each component has a position in the ecosystem. It could be represented by something like :

Level 0 nkLog nkExport
Level 1 nkResources nkTasks nkMaths nkMemory
Level 2 nkInputs nkScripts nkWinUi nkImages
Level 3 nkGraphics
Level 4 nkAstraeus

A component higher in the hierarchy can rely on one or more components from the lower levels. For instance, the nkTasks component uses the nkLog component. Or nkScripts uses nkExport, nkLog and nkResources.

For a more detailed description for each of them :

Component Description Dependencies
nkLog Common logging interfaces among the components -
nkExport Abstraction over exporting capabilities, such as Json... -
nkResources Offers functionnalities to centralize path management nkLog
nkTasks Helps with asynchronous work scheduling nkLog
nkMaths Offers all needed mathematics functionnalities for the components nkLog
nkMemory Offers memory handling capabilities, through pools, pagers... nkLog
nkInputs Abstracts input devices and capabilities nkLog, nkMaths
nkScripts Allows for scripting environment setup nkLog, nkExport, nkResources
nkWinUi Offers ways to create system UIs nkLog, nkExport, nkResources
nkImages Offers image formats encoding / decoding capabilities nkMaths, nkMemory
nkGraphics Abstracts graphics API usage for graphical work nkLog, nkExport, nkResources, nkTasks, nkWinUin, nkMemory
nkAstraeus Leverages all other components to offer higher level access to the engine nkLog, nkGraphics, nkScripts

Dependencies

The engine uses some third-party code :